package com.Dec_Seven;

import org.jetbrains.annotations.NotNull;

import java.util.Arrays;

/**
 * 135. 分发糖果
 * n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。
 *
 * 你需要按照以下要求，给这些孩子分发糖果：
 *
 * 每个孩子至少分配到 1 个糖果。
 * 相邻两个孩子评分更高的孩子会获得更多的糖果。
 * 请你给每个孩子分发糖果，计算并返回需要准备的 最少糖果数目 。
 *
 *  
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/candy
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * 2022/11/07 10:17
 */

public class Solution135 {

    public int candy(int @NotNull [] ratings) {
        int[] can=new int[ratings.length];
        Arrays.fill(can,1);
        for (int i = 1; i < ratings.length; i++) {
            if (ratings[i]>ratings[i-1]) can[i]=can[i-1]+1;
        }
        for (int j=ratings.length-2;j>=0;j--){
            if (ratings[j]>ratings[j+1])
            {
                can[j]=Math.max(can[j],can[j+1]+1);
            }
        }
        int sum=0;
        for (int ca :
                can) {
            sum += ca;
        }
        return sum;
    }

    public static void main(String[] args) {
        Solution135 solution135=new Solution135();
        System.out.println(solution135.candy(new int[]{1,2,2}));
    }

}
